#pragma once

#include "UIConfigResourceManager.h"
#include "UILogger.h"
#include "AudioLogger.h"
#include "SRNLUTypeDef.h"

class TTSEngine
{
public:
	TTSEngine(TTSEngineType type);
	virtual ~TTSEngine(void);

	virtual bool initialize() = 0;
	virtual bool speak(int sessionID, const char * promptString, const char * logFilePath) = 0;
	virtual bool stop() = 0;
	static AudioLogger* getTTSAudioLogger(void);
	inline TTSEngineType getType() { return m_engineType; }

protected:
	bool					m_isInitialized;
	UIConfigResourceManager * m_pConfigurator;
	UILogger				* m_pLogger;

private:
	TTSEngineType m_engineType;
	static AudioLogger		* m_pAudioLogger;
};
